jetcrab\ast\literals/
function.rs1use crate::ast::common::Span;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5pub struct ArrowFunctionExpression {
6 pub params: Vec<crate::ast::node::Node>,
7 pub body: Box<crate::ast::node::Node>,
8 pub expression: bool,
9 pub r#async: bool,
10 pub span: Option<Span>,
11}
12
13#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
14pub struct FunctionExpression {
15 pub id: Option<Box<crate::ast::node::Node>>,
16 pub params: Vec<crate::ast::node::Node>,
17 pub body: Box<crate::ast::node::Node>,
18 pub generator: bool,
19 pub r#async: bool,
20 pub span: Option<Span>,
21}
22
23#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
24pub struct ClassExpression {
25 pub id: Option<Box<crate::ast::node::Node>>,
26 pub super_class: Option<Box<crate::ast::node::Node>>,
27 pub body: Box<crate::ast::node::Node>,
28 pub span: Option<Span>,
29}
30
31#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
32pub struct TemplateLiteral {
33 pub quasis: Vec<TemplateElement>,
34 pub expressions: Vec<crate::ast::node::Node>,
35 pub span: Option<Span>,
36}
37
38#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
39pub struct TemplateElement {
40 pub value: String,
41 pub tail: bool,
42 pub span: Option<Span>,
43}
44
45#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
46pub struct TaggedTemplateExpression {
47 pub tag: Box<crate::ast::node::Node>,
48 pub quasi: Box<crate::ast::node::Node>,
49 pub span: Option<Span>,
50}